#ifndef OS_EVENT_H
#define OS_EVENT_H

#include "Uncopyable.h"
#include <windows.h>

class OSEvent : private Uncopyable
{
public:
	static const int cInfiniteTimeout = -1;

	OSEvent();
	virtual ~OSEvent();

	bool Set();
	bool Reset();
	bool Wait(int timeout_ms = cInfiniteTimeout);

private:
	HANDLE mHandle;
};

#endif